The following description of background art may include insights, discoveries, understandings or disclosures, or associations together with disclosures not known to the relevant art prior to the present invention but provided by the invention. Some of such contributions of the invention may be specifically pointed out below, whereas other such contributions of the invention will be apparent from their context.
In modern communication and computer networks, data exchange between programs and computers is a vital element. Different programs, computers and processors exchange data without human intervention. Different networks and protocols are used in different environments. On the Internet, the Transmission Control Protocol/Internet Protocol (TCP/IP) is the basic protocol used in communication. TCP/IP takes care of assembling and disassembling the data to be transmitted in packets. IP handles the addressing so that packets are delivered to the correct destination. Above TCP/IP, the Hypertext Transfer Protocol (HTTP) is used as a client/server protocol. A program may send an HTTP request to a server which responds with another HTTP message.
The exchanges of interoperable messages using APIs (Application Program Interfaces) provided by servers on the Internet are realized by using web services. A web service can be realized in many ways, usually by using a REST (Representational State Transfer) design with the built-in features of a web protocol like HTTP and payload encoding with Extensible Markup Language (XML), or realized as a remote procedure call via SOAP (Simple Object Access Protocol).
SOAP is an Internet service messaging protocol which is widely used in the transmission of automated messages between computer servers on the Internet. SOAP provides an extensible format for providing message exchanges between computers to achieve any given task. At present, the content of a SOAP message is encoded by using XML. XML can be used to represent any kind of information. The messages are made up of structured XML tags. When SOAP messages are transmitted over the Internet, they use an application protocol such as HTTP over TCP/IP or Session Initiation Protocol (SIP) over TCP/IP.
Low-power wireless networks, such as IEEE 802.15.4 based embedded and sensor networks, have extremely limited resources for transmitting packets. These networks are very energy-efficient, and the chip technology is cheap. For this reason the technology is making its way to embedded devices very quickly for automation, measurement, tracking and control, for example.
In the low-power wireless networks, current web service technologies are far too complex (headers, content parsing) and heavy (large header and content overhead). Recently, binary web service protocols have been developed for low-power wireless networks. A binary web service solution includes the use of a suitable web service protocol (such as simplified HTTP or a binary web service protocol such as Constrained Application Protocol CoAP) and an efficient content encoding (such as Efficient XML Interchange EXI, Binary XML or Fast Infoset FI).
Typical web services use XML for content encoding, making use of XML schemas having well-known or easily available namespace information. Furthermore, even in the absence of exact schema information, an XML document can be parsed by an end point. However, the same is not true in binary web services. In order to achieve the very small overhead requirements, XML encoding technologies such as EXI make use of out-of-band Schema information (so-called Schema-informed Mode in EXI). The deployment of binary web services requires a large range of components, including embedded device clients, proxies and servers. In order for this system to function most efficiently, all components must have the correct schema information and be able to identify which schema to use for which binary web service payload.
Currently, if a schema has been used in the encoding of a message a schema ID may be included in the header of the message. However, the current state-of-the-art only describes how schema information is used to encode or decode a payload, but not how to identify, manage and optimize schemas across an entire binary web service system (called a domain).